const koa = require('koa');
const bodyParser = require('koa-bodyparser');
const cro = require('koa2-cors');

const { useRoute } = require('../router/index');
const { errorHandle } = require('./error-handle');

const app = new koa();

// 解决跨域问题
app.use(
  cro({
    origin: '*', // 允许跨域的地址，我的理解类似白名单，*代表全部允许
    exposeHeaders: ['WWW-Authenticate', 'Server-Authorization'], // 暴露header列表
    maxAge: 5, // 每隔5秒发送预检请求，也就是发送两次请求
    credentials: true, // 允许请求携带cookie
    allowMethods: ['OPTIONS', 'GET', 'PUT', 'POST', 'DELETE'], // 请求方式
    allowHeaders: ['Accept', 'Origin', 'Content-type', 'Authorization'],
  })
);

app.use(bodyParser());

// 调用路由
useRoute(app);

//  错误处理函数
app.on('error', errorHandle);

module.exports = app;